/**
 * 
 */
package com.ls.lserp.modules.sys.service;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.ls.lserp.common.persistence.Page;
import com.ls.lserp.common.service.CrudService;
import com.ls.lserp.modules.sys.dao.FinanceDao;
import com.ls.lserp.modules.sys.entity.Finance;


/**
  * @ClassName: FinanceService
  * @Description: 会计科目保存 更新 删除
  * 
  * @author 秦玉峰
  * @date 2017年03月31日 下午4:21:31
  *
  */

@Service
@Transactional(readOnly = true)
public class FinanceService extends CrudService<FinanceDao, Finance> {
    @Autowired
    private FinanceDao financeDao;
    
    /**
      * @Title: findList
      * @Description: 查询字段类型列表
      * @param page
      * @param finance
      * @return Page<Finance> 
      */
    
    public Page<Finance> findList(Page<Finance> page, Finance finance) {
        // 设置分页参数
    	finance.setPage(page);
        // 执行分页查询
        page.setList(financeDao.findList(finance));
        
        return page;
    }


    /**
	  * @Title: getItemCodeFin
	  * @Description: 查重方法
	  * @param itemCode
	  * @return Finance 
	  */
	
	public Finance getItemCodeFin(String itemCode,String itemCategory) {
		
		// 实力化
		Finance finance = new Finance();
		finance.setItemCode(itemCode);
		finance.setItemCategory(itemCategory);
		
		// 通过数据值和数据代码查询
		return financeDao.getByItemCodeFin(finance);
	}

	/**
	  * @Title: saveFinance
	  * @Description: 保存基准数据
	  * @param finance
	  * @return void 
	  */
	@Transactional(readOnly = false)
	public void saveFinance(Finance finance) {
		// 判断新建编辑
		//若为null 执行插入语句（新建）
		if (finance.getId()==null){
			finance.preInsert();
			financeDao.insert(finance);
			
		// 编辑
		}else{
			// 更新数据
			finance.preUpdate();
			financeDao.update(finance);
		}
	}
	/**
	  * @Title: deleteFinance
	  * @Description: 删除基准数据(逻辑删除)
	  * @param finance
	  * @return void 
	  */
	
	@Transactional(readOnly = false)
	public void deleteFinance(Finance finance) {
		financeDao.delete(finance);
	}
	
}